(function (app, jQ) {

    app.users = new function () {

        this.init = function () {

            _initEditable();

            jQ('.remove').click(function () {

                if (!confirm("Bạn có chắc chắn muốn xóa user này?")) {
                    return false;
                }
            });

            var addNew = jQ('.addNew');
            var addNewUser = jQ('.addNewUser');
            var submitForm = jQ('.submitForm');
            addNew.click(function () {

                addNewUser.slideToggle();
            });

            addNewUser.validate({
                invalidHandler: function (form, validator) {
                    var errors = validator.numberOfInvalids();
                    if (errors) {
                        validator.errorList[0].element.focus();
                    }
                },
                ignore: ":hidden, .notValidate",
                errorElement: "li",
                wrapper: "ul",
                errorPlacement: function (error, element) {
                    error.addClass('error');
                    error.insertAfter(element);
                },
                rules: {
                    user: {
                        required: true
                    },
                    pwd: {
                        required: true
                    }
                },
                messages: {
                    user: "Bạn cần nhập tên tài khoản",
                    pwd: "Bạn cần nhập mật khẩu"
                }
            });
        }

        var _initEditable = function () {

            jQ('.editTrigger').click(function () {

                $this = jQ(this);
                $this.parent().find('.objEditable').trigger('edit_report');
            });

            jQ('.objEditable').editable(base_url + 'auth/edit', {
                event: 'edit_report',
                type: 'text',
                submit: 'OK',
                indicator: 'Wait...',
                id: 'hk',
                name: 'ns',
                css: 'inherit',
                onblur: "cancel",
                cssclass: "editable",
                submitdata: function (value, settings) {
                    var betItem = jQ(this).parents('.userItem');

                    return {
                        'name': jQ(this).data('name'),
                        'id': betItem.data('id')
                    };
                },
                "onsubmit": function (settings, td) {

                    var input = jQ(td).find('input');
                    var original = input.val();
                    if (original == "") {
                        alert("Gía trị này không được để trống!");
                        return false;
                    } else {
                        return true;
                    }
                },
                callback: function (value, settings) {
                    if (value == 'error') {
                        alert('An error has occurred!');
                        location.reload();
                    }
                    alert('Cập nhật thành công!');
                }
            });

            jQ('.objEditableSlc').editable(base_url + 'auth/edit', {
                type: 'select',
                data   : "{'-1':'Admin','1':'User'}",
                submit: 'OK',
                indicator: 'Wait...',
                id: 'hk',
                name: 'ns',
                css: 'inherit',
                onblur: "cancel",
                cssclass: "editable",
                submitdata: function (value, settings) {
                    var betItem = jQ(this).parents('.userItem');

                    return {
                        'name': jQ(this).data('name'),
                        'id': betItem.data('id')
                    };
                },
                "onsubmit": function (settings, td) {

                    var input = jQ(td).find('input');
                    var original = input.val();
                    if (original == "") {
                        alert("Gía trị này không được để trống!");
                        return false;
                    } else {
                        return true;
                    }
                },
                callback: function (value, settings) {
                    if (value == 'error') {
                        alert('An error has occurred!');
                        location.reload();
                    }
                    alert('Cập nhật thành công!');
                }
            });
        };
    };


})($$.app, $);
